package tfc_editor;

import tfc_editor.GUI.EditorGUI;
import tfc_editor.pastrytools.PastryManager;

/**
 * Clase principal del programa.
 * @author Ixmaelon
 *
 */
public class Main
{

	private EditorGUI eg;

	/**
	 * Funció principal del programa. S'encarrega d'inicialitzar el programa.
	 */
	public Main()
	{
	}

	/**
	 * Comença l'execució. Crea el PastryManager. I el editor.
	 * @param args Els arguments de la crida des de la linia de comandes.
	 */
	public void Start(String[] args)
	{
		for (int i=0;i<args.length;i++)
			System.out.println("Arg"+i+": "+args[i]);

		eg = new EditorGUI(new PastryManager(args)); 
	}
	
	/**
	 * Comença l'execució sense rebre els parametres de la linia de comandes. 
	 */
	public void Start()
	{
		System.out.println("Sense arguments");
		String[] args=new String[0];

		eg = new EditorGUI(new PastryManager(args)); 
	}

	/**
	 * Inicia la clase pastry manager, pero no l'editor.
	 * @return Instancia de la clase PastryManager.
	 */
	public PastryManager StartNoEdit()
	{
		System.out.println("Inicialitzant pastry manager...");
		String[] args=new String[0];
		return new PastryManager(args);
	}

	/**
	 * Funcio per demanar el objecte EditorGUI de la clase Main.
	 * @return La instancia de la clase de l'editor.
	 */
	public EditorGUI GetEditor()
	{
		return eg;
	}

	/**
	 * Funció d'entrada al programa.
	 * @param args Arguments d'entrada per la linia de comandes. No s'utilitzen.
	 */
	public static void main(String[] args)
	{
		Main app = new Main();
		app.Start(args);
	}
}
